<?php

session_start();
$ruta_raiz = "..";

if (!$dependencia or !$tpDepeRad)
    include "$ruta_raiz/rec_session.php";
require_once("$ruta_raiz/include/db/ConnectionHandler.php");
include_once "$ruta_raiz/include/tx/Historico.php";
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
$db = new ConnectionHandler($ruta_raiz);
//$objHistorico = new Historico($db);
$db->conn->SetFetchMode(ADODB_FETCH_ASSOC);
//$db->conn->debug=true;
switch ($_REQUEST["opc"]) {
    case '0': //Obtiene el nombre del nivel
        $nivel = $_POST["nivel"];
        $nivel1 = $nivel + 1;
        $mostrar = "";
        $options = "";
        $label = "";
        $ban = false;
        //Carga los niveles 
        if (isset($_POST["aux"]))
            $sql = "select SGD_EIT_NOMBRE, SGD_EIT_ETIQUETA,SGD_EIT_CODIGO from SGD_EIT_ITEMS where SGD_EIT_COD_PADRE = '{$_POST["edif"]}' and SGD_EIT_NOMBRE like '{$_POST["aux"]}%' order by SGD_EIT_NOMBRE  ";
        else
            $sql = "select SGD_EIT_NOMBRE, SGD_EIT_ETIQUETA,SGD_EIT_CODIGO from SGD_EIT_ITEMS where SGD_EIT_COD_PADRE = '{$_POST["edif"]}' order by SGD_EIT_NOMBRE  ";
        $rs = $db->query($sql);
        while (!$rs->EOF) {
            $ban = true;
            $label = $rs->fields["SGD_EIT_ETIQUETA"];
            $options .= "<option value='{$rs->fields["SGD_EIT_CODIGO"]}'>{$rs->fields["SGD_EIT_NOMBRE"]}</option>";
            $rs->MoveNext();
        }
        if ($ban) {
            $mostrar .= "<label >" . $label . "</label>";
            $mostrar .= "<select name='nivel$nivel' id='nivel$nivel' onchange=\"fnCargaItem('divNivel$nivel1',this.value,'$nivel1');\" class='select' style='margin-right:7px;'  >";
            $mostrar .="<option value=''>Elija</option>$options";
            $mostrar .="</select>";
        } else {
            $mostrar = "<span id='spNohaymas'> /&nbsp; </span>";
        }
        if ($nivel1 >= 1)
            $mostrar .= "<script type='text/javascript'>varSigNivelValido = 1;</script>";
        else
            $mostrar .= "<script type='text/javascript'>varSigNivelValido = 0;</script>";
        echo $mostrar;
        break;
    case '1': //actualiza los folios o anexos de un radicado
        $campo = ($_POST["accion"] == "F") ? "RADI_NUME_HOJA" : "MEDIO_M";
        $sql = "update RADICADO set $campo = '{$_POST["hojas"]}' where RADI_NUME_RADI = '{$_POST["radicado"]}'";
        $rs = $db->conn->query($sql);
        break;
    case '2': //Optiene el numero de folios de la carpeta
        $respuesta = array();
        $sql = "select sum(rad.radi_nume_hoja) as FOLIOS,sum(rad.medio_m) as ANEXOS from sgd_exp_expediente exp
        inner join radicado rad on rad.radi_nume_radi = exp.radi_nume_radi
        where exp.sgd_exp_numero = '{$_GET["expediente"]}' and exp.sgd_exp_carpeta = '{$_GET["carpeta"]}'";
        $rt = $db->query($sql);
        if (!$rt->EOF) {
            $respuesta["folios"] = (isset($rt->fields["FOLIOS"])) ? $rt->fields["FOLIOS"] : 0;
            $respuesta["anexos"] = (isset($rt->fields["ANEXOS"])) ? $rt->fields["ANEXOS"] : 0;
        } else {
            $respuesta["folios"] = 0;
            $respuesta["anexos"] = 0;
        }
        echo json_encode($respuesta);
        break;
    case '3': //Guarda el formulario
        $usuario = $_SESSION["krd"];
        //Ubica el nivel mas bajo de la ubicación
        $nivel = 0;
        $ban = true; //bandera para indicar que se llego al maximo nivel
        while ($ban) {
            $nivel++;
            $ban = (isset($_POST["nivel$nivel"])) ? TRUE : FALSE;
        }
        $nivel--; //Se reduce uno por que siempre termina un nivel por ensima
        if($_POST["nivel$nivel"] == ""){
            //Condicion para tomar el ultimo nivel que se le halla asignado al radicado
            $tmpC = $nivel - 1;
            $encontroNivel = false;
            while($tmpC > 0 && !$encontroNivel){
                if($_POST["nivel$tmpC"] != ""){
                    $encontroNivel = true;
                    $ufisica = $_POST["nivel$tmpC"];
                }
                $tmpC --;
            }
            if(!$encontroNivel){
                $ufisica = $_POST["edificio"];
            }
        }
        $baseRadicado = $_POST["radicadoBase"];
        $totFolRadicadoBase = 0;
        $totAnxRadicadoBase = 0;
        $cajas = $_POST["caja"];
        $carpeta = $_POST["carpeta"];
        $radFol = $_POST["radFol"];
        $radAne = $_POST["radAne"];
        foreach ($_POST["inclu"] as $indiceGen => $radicado) {
            if ($baseRadicado == $radicado) {
                /* Cuando se trata del radicado báse es por que puede tener multiples carpetas */
                $cajaBase = $_POST["cajaBase"];
                $carpetaBase = $_POST["carpetaBase"];
                $foliosBase = $_POST["foliosBase"];
                $anexosBase = $_POST["anexosBase"];
                $idRadBases = $_POST["idRadBases"];
                foreach ($cajaBase as $indiceBase => $cjBase) {
                    $cjBase = (int) $cjBase;
                    if ($cjBase != "" && is_int($cjBase)) { //valida la caja
                        $carpetaBase[$indiceBase] = (int) $carpetaBase[$indiceBase];
                        if ($carpetaBase[$indiceBase] != "" && is_int($carpetaBase[$indiceBase])) { //valida la carpeta
                            $foliosBase[$indiceBase] = (int) $foliosBase[$indiceBase];
                            if (($foliosBase[$indiceBase] != "" && is_int($foliosBase[$indiceBase])) || $foliosBase[$indiceBase] == 0)  { //valida folios
                                $anexosBase[$indiceBase] = (int) $anexosBase[$indiceBase];
                                if (($anexosBase[$indiceBase] != "" && is_int($anexosBase[$indiceBase])) || $anexosBase[$indiceBase] == 0) { //valida anexos
                                    if (($idRadBases[$indiceBase] == "") || !isset($idRadBases[$indiceBase])) { //Crea
                                        $sql = "select max(ID) as TOTAL from SGD_ARCHIVO_UBICA";
                                        $rt = $db->query($sql);
                                        $idAutoIncre = (!isset($rt->fields["TOTAL"]) || $rt->fields["TOTAL"] == "") ? 0 : ($rt->fields["TOTAL"] + 1);
                                        $sql = "insert into SGD_ARCHIVO_UBICA(ID,SGD_EXP_NUMERO,RADI_NUME_RADI,CAJA,CARPETA,FOLIOS_OFICIO,FOLIOS_ANEXOS,USUARIO_CREA,FECHA_CREACION) values(";
                                        $sql .= "$idAutoIncre,'{$_POST["numExpediente"]}','$baseRadicado','$cjBase','{$carpetaBase[$indiceBase]}','{$foliosBase[$indiceBase]}','{$anexosBase[$indiceBase]}','$usuario',SYSDATE)";
                                        $rt = $db->query($sql);
                                    } else { //edita
                                        $sql = "update SGD_ARCHIVO_UBICA set
                                            SGD_EXP_NUMERO = '{$_POST["numExpediente"]}',
                                            RADI_NUME_RADI = '$baseRadicado',
                                            CAJA = '$cjBase',
                                            CARPETA = '{$carpetaBase[$indiceBase]}',
                                            FOLIOS_OFICIO = '{$foliosBase[$indiceBase]}',
                                            FOLIOS_ANEXOS = '{$anexosBase[$indiceBase]}',
                                            USUARIO_ACTUALIZA = '$usuario',
                                            FECHA_ACTUALIZACION = SYSDATE
                                            where ID = '{$idRadBases[$indiceBase]}'";
                                        $rt = $db->query($sql);
                                    } //fin if ($idRadBases[$indiceBase] != "") {
                                    $totFolRadicadoBase += $foliosBase[$indiceBase];
                                    $totAnxRadicadoBase += $anexosBase[$indiceBase];
                                } //fin if ($anexosBase[$indiceBase] != "" && is_int($anexosBase[$indiceBase])) { 
                            } //fin if ($foliosBase[$indiceBase] != "" && is_int($foliosBase[$indiceBase])) { 
                        } //fin if ($carpetaBase[$indiceBase] != "" && is_int($carpetaBase[$indiceBase])) {
                    } //fin if ($cajaBase != "" && is_int($cajaBase)) {
                } //fin foreach ($cajaBase as $indiceBase => $cajaBase) {
                //Al final actualiza el numero total de folios y anexos que tiene el radicado en su tabla maestra
                $sql = "update RADICADO set RADI_NUME_HOJA = '$totFolRadicadoBase',MEDIO_M = '$totAnxRadicadoBase' where RADI_NUME_RADI = '$baseRadicado'";
                $rt = $db->query($sql);
            } else {
                $cajas[$indiceGen] = (int) $cajas[$indiceGen];
                if ($cajas[$indiceGen] != "" && is_int($cajas[$indiceGen])) { //valida la caja
                    $carpeta[$indiceGen] = (int) $carpeta[$indiceGen];
                    if ($carpeta[$indiceGen] != "" && is_int($carpeta[$indiceGen])) { //valida la carpeta
                        $radFol[$indiceGen] = (int) $radFol[$indiceGen];
                        if ($radFol[$indiceGen] != "" && is_int($radFol[$indiceGen]) || $radFol[$indiceGen] == 0) { //valida folios
                            $radAne[$indiceGen] = (int) $radAne[$indiceGen];
                            if ($radAne[$indiceGen] != "" && is_int($radAne[$indiceGen]) || $radAne[$indiceGen] == 0) { //valida anexos
                                $sql = "select max(ID) as TOTAL from SGD_ARCHIVO_UBICA";
                                $rt = $db->query($sql);
                                $idAutoIncre = (!isset($rt->fields["TOTAL"]) || $rt->fields["TOTAL"] == "") ? 0 : ($rt->fields["TOTAL"] + 1);
                                $sql = "insert into SGD_ARCHIVO_UBICA(ID,SGD_EXP_NUMERO,RADI_NUME_RADI,CAJA,CARPETA,FOLIOS_OFICIO,FOLIOS_ANEXOS,USUARIO_CREA,FECHA_CREACION) values(";
                                $sql .= "$idAutoIncre,'{$_POST["numExpediente"]}','$radicado','{$cajas[$indiceGen]}','{$carpeta[$indiceGen]}','{$radFol[$indiceGen]}','{$radAne[$indiceGen]}','$usuario',SYSDATE)";
                                $rt = $db->query($sql);
                            } //fin if ($anexosBase[$indiceBase] != "" && is_int($anexosBase[$indiceBase])) { 
                        } //fin if ($foliosBase[$indiceBase] != "" && is_int($foliosBase[$indiceBase])) { 
                    } //fin if ($carpetaBase[$indiceBase] != "" && is_int($carpetaBase[$indiceBase])) {
                } //fin if ($cajaBase != "" && is_int($cajaBase)) {
            } //fin if ($baseRadicado == $radicado) {
            $sql = "update SGD_EXP_EXPEDIENTE SET SGD_EXP_ESTADO = '1'
            ,SGD_EXP_FECH_ARCH = SYSDATE
            ,SGD_EXP_FECHFIN = SYSDATE
            ,RADI_USUA_ARCH = '$usuario'
            ,SGD_EXP_UFISICA = '$ufisica'
            ,SGD_EXP_UNICON = '{$_POST["unConservacion"]}'
            ,SGD_EXP_NREF = '{$_POST["nroReferencia"]}'
            ,SGD_EXP_ASUNTO = '{$_POST["UNObservacion"]}'
            where SGD_EXP_NUMERO = '{$_POST["numExpediente"]}' and RADI_NUME_RADI = '$radicado'";
            $rt = $db->query($sql);
        }
        break;
    case '4': //extrae el número de folios y anexos de cada carpeta
        $sql = "select SUM(FOLIOS_OFICIO) AS FOLIOS,SUM(FOLIOS_ANEXOS) AS ANEXOS from SGD_ARCHIVO_UBICA where sgd_exp_numero = '{$_GET["exp"]}'  and CARPETA = '{$_GET["carpeta"]}'";
        $rts = $db->query($sql);
        $retorna = array();
        if (!$rts->EOF) {
            if (isset($rts->fields["FOLIOS"]) ) {
                $retorna["folios"] = $rts->fields["FOLIOS"];
                $retorna["anexos"] = $rts->fields["ANEXOS"];
                $retorna["exito"] = 1;
            } else
                $retorna["exito"] = 0;
        }
        echo json_encode($retorna);
        break;
    case '5': //Busca el numero de folios y anexos para la caja y carpeta que digito
        $sqlAux = ($_POST["edita"] == "1")?" AND RADI_NUME_RADI <> '{$_POST["radicado"]}'":"";
        $sql ="select SUM(FOLIOS_OFICIO) AS FOLIOS,SUM(FOLIOS_ANEXOS) AS ANEXOS FROM SGD_ARCHIVO_UBICA where SGD_EXP_NUMERO = '{$_POST["expediente"]}' AND CARPETA = '{$_POST["carpeta"]}' $sqlAux";
//        echo $sql;
        $rt = $db->conn->query($sql);
        if (!$rt->EOF) {
            $tot = $rt->fields["FOLIOS"] + $rt->fields["ANEXOS"];
        }else $tot= 0;
        echo $tot;
        break;
} //fin switch ($_POST["opc"]) {
?>
